Computing and communication networks typically include devices, such as routers, switches or gateways, which transfer or switch data, such as packets, from one or more sources to one or more destinations. A network switch or router, in particular, may include a networking device that connects network segments and computing devices.
Traffic through a network, such as an Internet Protocol (IP) based packet switching network, may be transmitted as unicast traffic, where a unicast transmission refers to the sending of messages to a single network destination. Another type of transmission, multicast transmission, refers to simultaneously sending messages to a group of destinations. In multicast transmissions, it is desirable to send the multicast messages using an efficient delivery strategy that creates copies of the multicast messages only when the links to the multiple destinations split. IP multicast technologies are frequently used to stream multimedia to a number of clients.
Network switching and/or routing devices may control the flow of packets, such as unicast or multicast packet traffic, in a network. In some network topologies, links from switches/routers may be logically combined to appear as a single “virtual” aggregated link in the network.
Two issues faced by devices that handle multicast traffic over aggregated links include (1) load balancing the multicast traffic over the member links of the aggregated link switches and (2) handling failure instances in which a member link of an aggregated link fails. In some existing routers, load balancing is handled by creating “tokens” that represent routes, where an aggregated link that includes n (where n is an integer) member links may result in the creation of n tokens that are distributed to various components in the router.
It is desirable to be able to efficiently handle load balancing for multicast traffic over aggregated links in a way that allows for fast convergence when member links of an aggregated link fails and that efficiently uses memory of the routing/switching device.